package cn.com.dcsgo.service;

import cn.com.dcsgo.domain.ProdComm;
import cn.com.dcsgo.dto.PageDTO;
import cn.com.dcsgo.dto.ProdCommQueryDTO;
import cn.com.dcsgo.dto.ReviewReplyProdCommDTO;
import cn.com.dcsgo.vo.ProdCommOverviewVO;
import cn.com.dcsgo.vo.ProdCommVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 针对表【prod_comm(商品评论)】的数据库操作Service
 *
 * @author Dcsgo
 * @since 2025-10-14 08:45:29
 */
public interface ProdCommService extends IService<ProdComm> {

    /**
     * 分页获取商品评论
     *
     * @param pageDTO          分页参数
     * @param prodCommQueryDTO 查询参数
     * @return 商品评论分页结果
     */
    Page<ProdComm> getPage(PageDTO pageDTO, ProdCommQueryDTO prodCommQueryDTO);

    /**
     * 审核与回复评论
     *
     * @param reviewReplyProdCommDTO 审核与回复评论的信息
     * @return true-审核与回复成功，false-审核与回复失败
     */
    boolean reviewReplyProdComm(ReviewReplyProdCommDTO reviewReplyProdCommDTO);

    /**
     * 获取评论统计信息
     *
     * @param prodId 商品ID
     * @return 商品评论统计信息
     */
    ProdCommOverviewVO getProdCommOverviewVO(Long prodId);

    /**
     * 分页获取用户评论信息
     *
     * @param prodId   商品ID
     * @param evaluate 评论筛选参数：-1全部，0 好评，1中评，2差评，3带图
     * @param pageDTO  分页参数
     * @return 评论信息包含用户昵称和头像
     */
    Page<ProdCommVO> getProdCommVOPage(Long prodId, Integer evaluate, PageDTO pageDTO);
}
